"""
日志配置
"""
import os
import logging
from logging.handlers import TimedRotatingFileHandler
from pathlib import Path
from datetime import datetime
from backend.app.utils.config import settings

# 创建logs目录
LOGS_DIR = Path(__file__).parent.parent.parent / "logs"
LOGS_DIR.mkdir(exist_ok=True)

# 日志文件路径
LOG_FILE = LOGS_DIR / "telltech.log"

def setup_logger():
    """配置日志"""
    # 创建日志格式
    formatter = logging.Formatter(
        '[%(levelname)s]%(asctime)s - %(name)s - %(filename)s:%(lineno)d : %(message)s'
    )
    
    # 创建文件处理器（按天切割）
    file_handler = TimedRotatingFileHandler(
        filename=LOG_FILE,
        when='midnight',  # 每天午夜切割
        interval=1,       # 间隔为1天
        backupCount=settings.LOG_BACKUP_COUNT,   # 从配置中获取保留天数
        encoding='utf-8'
    )
    file_handler.setFormatter(formatter)
    file_handler.suffix = "%Y-%m-%d.log"  # 设置日志文件后缀格式
    
    # 创建控制台处理器
    console_handler = logging.StreamHandler()
    console_handler.setFormatter(formatter)
    
    # 获取根日志记录器
    root_logger = logging.getLogger()
    
    # 设置日志级别
    root_logger.setLevel(getattr(logging, settings.LOG_LEVEL))
    
    # 清除现有的处理器
    for handler in root_logger.handlers[:]:
        root_logger.removeHandler(handler)
    
    # 添加处理器
    root_logger.addHandler(file_handler)
    root_logger.addHandler(console_handler)
    
    return root_logger

# 创建日志记录器实例
logger = setup_logger() 